<?php
// +----------------------------------------------------------------------
// | ShopSuite商城系统 [ 赋能开发者，助力企业发展 ]
// +----------------------------------------------------------------------
// | 版权所有 随商信息技术（上海）有限公司
// +----------------------------------------------------------------------
// | 未获商业授权前，不得将本软件用于商业用途。禁止整体或任何部分基础上以发展任何派生版本、
// | 修改版本或第三方版本用于重新分发。
// +----------------------------------------------------------------------
// | 官方网站: https://www.kuteshop.cn  https://www.kuteshop.cn
// +----------------------------------------------------------------------
// | 版权和免责声明:
// | 本公司对该软件产品拥有知识产权（包括但不限于商标权、专利权、著作权、商业秘密等）
// | 均受到相关法律法规的保护，任何个人、组织和单位不得在未经本团队书面授权的情况下对所授权
// | 软件框架产品本身申请相关的知识产权，禁止用于任何违法、侵害他人合法权益等恶意的行为，禁
// | 止用于任何违反我国法律法规的一切项目研发，任何个人、组织和单位用于项目研发而产生的任何
// | 意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、
// | 附带或衍生的损失等)，本团队不承担任何法律责任，本软件框架只能用于公司和个人内部的
// | 法律所允许的合法合规的软件产品研发，详细见https://www.modulithshop.cn/policy
// +----------------------------------------------------------------------


namespace Modules\Trade\Repositories\Criteria;

use Illuminate\Database\Eloquent\Builder;
use Kuteshop\Core\Repository\Criteria\Criteria;

class DistributionOrderCriteria extends Criteria
{
    protected function condition(Builder $query): void
    {

        //订单编号
        if ($order_id = $this->request->get('order_id')) {
            $query->where('order_id', 'like', "%$order_id%");
        }

        //买家ID
        if ($buyer_user_id = $this->request->get('buyer_user_id')) {
            $query->where('buyer_user_id', '=', $buyer_user_id);
        }

        //收益归属人id
        if ($user_id = $this->request->get('user_id')) {
            $query->where('user_id', '=', $user_id);
        }

        //是否生效
        if ($uo_active = $this->request->get('uo_active')) {
            $query->where('uo_active', '=', $uo_active);
        }

        //是否支付
        if ($uo_is_paid = $this->request->get('uo_is_paid')) {
            $query->where('uo_is_paid', '=', $uo_is_paid);
        }

        //创建时间
        if ($uo_time_start = $this->request->get('uo_time_start')) {
            $query->where('uo_time', '>=', $uo_time_start);
        }
        if ($uo_time_end = $this->request->get('uo_time_end')) {
            $query->where('uo_time', '<=', $uo_time_end);
        }

        //支付时间
        if ($uo_paytime = $this->request->get('uo_paytime')) {
            $query->where('uo_paytime', '>=', $uo_paytime);
        }

        //收货时间
        if ($uo_receivetime = $this->request->get('uo_receivetime')) {
            $query->where('uo_receivetime', '>=', $uo_receivetime);
        }

        //佣金等级
        if ($uo_level = $this->request->get('uo_level')) {
            $query->where('uo_level', '=', $uo_level);
        }

        //佣金等级s
        if ($uo_levels = $this->request->get('uo_levels')) {
            $query->where('uo_level', 'IN', $uo_levels);
        }
    }

    protected function after($model)
    {
        return $model->orderBy('uo_time', 'DESC');
    }
}
